import java.util.HashMap;
import java.util.Scanner;

//给定一个整数数组 nums 和一个整数 k ，返回其中元素之和可被 k 整除的非空 子数组 的数目。
//
//子数组 是数组中 连续 的部分。
public class test6 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] nums = new int[n];
        for (int i = 0; i < n; i++) {
            nums[i] = in.nextInt();
        }
        int k = in.nextInt();
        int result = subarraysDivByK(nums,k);
        System.out.println(result);
    }

    public static int subarraysDivByK(int[] nums, int k) {
       HashMap<Integer,Integer> map = new HashMap<>();
       map.put(0,1);//用来表示余数为0的情况
       int sum = 0,ret=0;
       for(int x:nums){
           sum += x;
           int div = (sum%k+k)%k;
           ret+=map.getOrDefault(div,0);
           map.put(div, map.getOrDefault(div,0)+1);
       }
       return ret;

    }
}
